/**
 * Author@ Cheng Feitian
 * Date: 2020-3-23
 * Description: 函数重载，可以让函数名相同，提高复用性
 */

#include <algorithm>
#include <iostream>
#include <string>

using namespace std;
const int maxn = 1024;

void func(){
    cout << "func 的调用" << endl;
}

// void func(){ //此时是有歧义的，编译器不知道要调用哪一个
//     cout << "func 的调用!" << endl;
// }

//函数重载的满足条件
/**
 * @brief 函数重载
 * 1.同一个作用域下
 * 2.函数名称相同
 * 3.函数参数类型不同，或者个数不同，或者顺序不同
 */

void func(int a){
    cout << "func(int a)的调用" << endl;
}

void func(double a){
    cout << "func(double a)的调用" << endl;
}

void func(int a,double b){
    cout << "func(int a,double b)的调用" << endl;
}

void func(double a,int b){
    cout << "func(double a,int b)的调用" << endl;
}

/**
 * @brief Notice
 * 函数的返回值不可以作为函数重载的条件 
 */
// int func(double a,double b){
//     cout << "int func(double a,double b)的调用" << endl;
//     return 0;
// }

int main() {

    func();
    func(10);
    func(3.14);
    func(1,1.0);
    func(1.0,1);

    return 0;
}
